#ifndef FW_INFO_H__
#define FW_INFO_H__ 

#include <stdint.h> 

#define APP_FIRMWARE_CODE		0xA991C0DE
#define BL_FIRMWARE_CODE		0xB11FC0DE


#define APP_FW_MAJOR				0x00
#define APP_FW_MINOR				0x01
#define APP_FW_REV					0x01
#define APP_FW_INNER				0x17

#define FW_REVISION			        (( APP_FW_MAJOR << 24 ) | ( APP_FW_MINOR << 16 ) | ( APP_FW_REV << 8 ) | APP_FW_INNER )
#define FW_REVISION_STRING          "v0.1.1.23"
#define FW_REVISION_STRING_LEN			sizeof( FW_REVISION_STRING ) - 1 


#define FW_INFO_MAGIC_CODE		APP_FIRMWARE_CODE	//APPL CODE 

#ifndef APP_FW_ID_VALUE
#define APP_FW_ID_VALUE         0x20210501
#endif
#define FW_INFO_FW_ID			(APP_FW_ID_VALUE)

#define FW_INFO_FW_VER			(FW_REVISION)
#define FW_INFO_FW_SIZE         (0)


#define FW_INFO_SD_VER          (0)
#define FW_INFO_SD_FWID         (0)

#define FW_INFO_DATE             __DATE__
#define FW_INFO_TIME             __TIME__ 

#define APP_FW_HW_VER			(0x8762)

typedef struct{
	uint32_t magic; 
	uint32_t app_fw_id; 
	uint32_t fw_version;
	uint32_t hw_version;
	
	uint8_t date[12];
	uint8_t time[8]; 
}fw_info_t; 

const fw_info_t* fw_get(void);

#endif // !FW_H__
